package com.cd.algorithm.order.code;

import java.util.Arrays;

/**
 * 每一轮循环都将最大的数放到最后面，这样就可以保证每一轮循环都会将最大的数放到最后面，直到排序完成。
 * 第二次循环，将第二大的数放到倒数第二位，第三次循环，将第三大的数放到倒数第三位，以此类推。
 * 这样，每一轮循环都会将最大的数放到最后面，直到排序完成。
 */
public class BubbleSort {
    public static void main(String[] args) {
        int[] arr = {5, 2, 8, 3, 9, 1};
        bubbleSort(arr);
        System.out.println("Sorted array:"+ Arrays.toString(arr));
    }

    public static void bubbleSort(int[] arr) {
        int n = arr.length;
        for (int i = 0; i < n-1; i++) {
            for (int j = 0; j < n-i-1; j++) {
                if (arr[j] > arr[j+1]) {
                    // swap arr[j] and arr[j+1]
                    int temp = arr[j];
                    arr[j] = arr[j+1];
                    arr[j+1] = temp;
                }
            }
        }
    }
}
